package org.ytor.core.sysapi.permission.model;

import lombok.Data;
import lombok.EqualsAndHashCode;
import org.ytor.common.util.bean.Beans;
import org.ytor.core.sqlflow.PersistenceModel;
import org.ytor.core.sqlflow.anno.Table;
import org.ytor.core.sysapi.permission.resp.SysPermissionResp;

/**
 * created by yangtong on 2025/4/8 14:14:32
 * <br/>
 * 资源
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Table("sys_permission")
public class SysPermission extends PersistenceModel<SysPermission, String> {
    /**
     * 父资源id
     */
    private String pid;
    /**
     * 资源名称
     */
    private String permissionName;

    /**
     * 资源编码，例如：接口地址、页面的路由地址、页面元素(按钮)的唯一标识
     */
    private String permissionCode;

    /**
     * 资源类型，1-接口、2-页面、3-页面元素
     */
    private Integer permissionType;

    /**
     * 前端组件地址（type为页面时生效）
     */
    private String component;

    /**
     * 图标
     */
    private String icon;

    /**
     * 是否可见
     */
    private Boolean visible;

    /**
     * 排序
     */
    private Integer sort;

    @Override
    public SysPermissionResp toResp() {
        return Beans.copyProperties(this, SysPermissionResp.class);
    }
}
